/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SemanticoPacote;

import SemanticoPacote.TratamentoErroSemantico.ErroSemantico;
import compilador_full.TabelaSimbolos;

/**
 *
 * @author Loreno
 */
public class saidaNaTela {

    public void saidaTela(TabelaSimbolos tabelaSimbolos) {

        String escopoPrintf = tabelaSimbolos.getEscopo();
        tabelaSimbolos.soConsome(); //printf
        tabelaSimbolos.soConsome(); //(

        while(!tabelaSimbolos.getLookahead().equals(")"))
        {
            if(tabelaSimbolos.getTipo().equals("frase"))
                tabelaSimbolos.soConsome();
            else if(tabelaSimbolos.getTipo().equals("identificador"))
            {
                if(!tabelaSimbolos.verificaSeFoiDeclaradoComoGlobal(tabelaSimbolos.getLookahead())
                   && !tabelaSimbolos.verificaSeJaFoiDeclarado(tabelaSimbolos.getLookahead(), escopoPrintf)){

                    System.out.println("Erro Semântico na linha " +tabelaSimbolos.getLinha()
                                       + ". Descrição: A variável "+ tabelaSimbolos.getLookahead()
                                       + " não foi declarada");

                    ErroSemantico.getInstance().getTabelaErros().add("Erro Semântico na linha " +tabelaSimbolos.getLinha()
                                                                    + ". Descrição: A variável "+ tabelaSimbolos.getLookahead()
                                                                    + " não foi declarada");
                }
                tabelaSimbolos.soConsome();//consome a variavel
            }
            if(tabelaSimbolos.getLookahead().equals(","))
                tabelaSimbolos.soConsome();//consume ,

       }
       tabelaSimbolos.soConsome();//consome ")"
       tabelaSimbolos.soConsome();//consome ";"
    }
}